package tpalgo3.modelo.tablero;

import java.awt.Point;
import java.util.ArrayList;
import java.util.List;

import tpalgo3.entidades.Nivel;


public class Camino {
	private List<Casillero> ruta;
	private int cantEnemigos = 0;
	
	public Camino(Nivel nivel) {
		llenarRuta(nivel);
	}
	
	public List<Casillero> getRuta() {
		return ruta;
	}
	public void setRuta(List<Casillero> ruta) {
		this.ruta = ruta;
	}	
	public int getCantEnemigos() {
		return cantEnemigos;
	}
	public void setCantEnemigos(int cantEnemigos) {
		this.cantEnemigos = cantEnemigos;
	}
	
	public void incrementarEnemigos() {
		cantEnemigos++;
	}
	
	public void decrementarEnemigos() {
		cantEnemigos--;
	}

	public Integer puertaEntrada() {
		return ruta.get(0).getOrdenCasillero();
	}
	
	public Integer puertaSalida() {
		return ruta.get(ruta.size()-1).getOrdenCasillero();
	}
	
	public Casillero getCasilleroN(int n) {
		return ruta.get(n);
	}
	
	public Casillero siguiente(Integer actual) {
		return ruta.get(actual + 1);
	}
	
	private void llenarRuta(Nivel nivel) {
		ruta = new ArrayList<Casillero>();
		int orden = 0;
		for (Point coor : nivel.getFormaCamino()) {
			ruta.add(new Casillero(coor, orden));
			orden++;
		}		
	}
}